/**
 * 
 */
package com.ph.shopping.facade.mapper;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.ph.shopping.common.core.base.BaseMapper;
import com.ph.shopping.facade.member.entity.IdcertificatesInfo;
import com.ph.shopping.facade.member.entity.Member;
import com.ph.shopping.facade.member.entity.TradersPassword;
import com.ph.shopping.facade.member.vo.MemberInfoByCashVo;
import com.ph.shopping.facade.member.vo.MemberVo;

public interface MemberMapper extends BaseMapper<Member>{
	/**
	 * 
	* @Title: selectMemberByPage  
	* @Description: 根据分页信息 查询会员相关数据  
	* @param @param pageInfo
	* @param @return    参数  
	* @return List<Member>    返回类型  
	* @throws
	 */
	List<MemberVo> selectMemberByPage(Map<String, Object> map);

	/**
	 * 
	* @Title: selectMemberListByMember  
	* @Description: 查询会员列表信息  
	* @param @param member
	* @param @return    参数  
	* @return List<Member>    返回类型  
	* @throws
	 */
	List<Member> selectMemberListByMember(Member member);

	/**
	 * 
	* @Title: insertMember  
	* @Description: 添加会员信息  
	* @param @param member
	* @param @return    参数  
	* @return int    返回类型  
	* @throws
	 */
	Long insertMember(Member member);

	/**
	 * 
	* @Title: updateMember  
	* @Description: 修改会员数据  
	* @param @param member
	* @param @return    参数  
	* @return int    返回类型  
	* @throws
	 */
	void updateMember(Member member);

	/**
	 * 删除会员数据
	* @Title: deleteMember  
	* @Description: TODO(这里用一句话描述这个方法的作用)  
	* @param @param member
	* @param @return    参数  
	* @return int    返回类型  
	* @throws
	 */
	void deleteMember(Integer id);

	/**
	 * 
	* @Title: batchUpdateMembers  
	* @Description: 批量修改数据  
	* @param @param list    参数  
	* @return void    返回类型  
	* @throws
	 */
	void batchUpdateMembers(List<Member> list);

	/**
	 * 
	* @Title: batchDeleteMembers  
	* @Description: 批量删除数据  
	* @param @param list    参数  
	* @return void    返回类型  
	* @throws
	 */
	void batchDeleteMembers(List<Integer> list);

	/**
	 * 
	* @Title: selectMemberInfoByMobile  
	* @Description: 根据手机号查询会员信息  
	* @param @param mobile
	* @param @return    参数  
	* @return Member    返回类型  
	* @throws
	 */
	Member selectMemberInfoByMobile(String mobile);

	/**
	 * 
	* @Title: insertIdcertificates  
	* @Description:添加图片信息 
	* @param @param info    参数  
	* @return void    返回类型  
	* @throws
	 */
	void insertIdcertificates(List<IdcertificatesInfo> list);

	/**
	 * 
	* @Title: insertTradersPassword  
	* @Description: 新增支付密码  
	* @param @param tradersPassword    参数  
	* @return void    返回类型  
	* @throws
	 */
	void insertTradersPassword(TradersPassword tradersPassword);
	/**
	 * 
	* @Title: selectUserPayPwd  
	* @Description: 根据用户ID 查询支付密码 
	* @param @param id
	* @param @return    参数  
	* @return TradersPassword    返回类型  
	* @throws
	 */
	TradersPassword selectUserPayPwd(Map<String, Object> map);
	/**
	 * 
	* @Title: selectUserPayPwd  
	* @Description: TODO(这里用一句话描述这个方法的作用)  
	* @param @param phone
	* @param @return    参数  
	* @return TradersPassword    返回类型  
	* @throws
	 */
	TradersPassword selectUserPayPwdByPhone(String phone);
	/**
	 * 
	* @Title: updadtePayPwd  
	* @Description: 修改支付密码  
	* @param @param tp    参数  
	* @return void    返回类型  
	* @throws
	 */
	void updadtePayPwd(Map<String, Object> map);
	/**
	 * 
	* @Title: insertMemberScoreData  
	* @Description: 新增会员时向会员积分表新增数据  
	* @param @param map    参数  
	* @return void    返回类型  
	* @throws
	 */
	void insertMemberScoreData(Map<String, Object> map);
	/**
	 * 
	 * @Title: selectMemberInfoById   
	 * @Description: 根据会员id 查询会员信息  
	 * @param: @param id
	 * @param: @return      
	 * @return: Member      
	 * @throws
	 */
	Member selectMemberInfoById(Long id);
	
	/**
	 * 根据id获取会员详情
	 * @param memberId
	 * @return
	 * @author Mr.Chang
	 */
	public MemberInfoByCashVo getMemberInfo(@Param("memberId")Long memberId);
	/**
	 * 
	 * @Title: selectMemberNumByPhone   
	 * @Description: 根据手机号判断会员是否存在
	 * @param: @param phone
	 * @param: @return      
	 * @return: int      
	 * @throws
	 */
	int selectMemberNumByPhone(String phone);

}
